1つ上の潜在成長曲線モデル

竹林 由武(統数研)

2016-3-27 @Hirosima.Univ

Topics

 

1. 非線形の成長曲線モデル

  • piecewise models
  • polynominal model
  • latetn basis model

 

2.多変量の成長曲線モデル

  • autoregressive latent trajectory Model
  • latent change score model

非線形モデルのモチベ

ある時点から傾きが異なる

piecewise model

2次(以上)の曲線で

polynominal model

データドリブンに

latent basis model

サンプルデータ

BMIの経時データ

  • 6時点のBody Mass Index (BMI)
bmi1 bmi2 bmi3 bmi4 bmi5 bmi6
mean 27.06 27.36 27.52 27.60 27.68 27.80
sd 4.74 4.83 4.83 4.82 5.12 5.16

普通にLCM

model0<-'
#切片因子の設定
i =~ 1*bmi1 + 1*bmi2 + 1*bmi3 + 
     1*bmi4 + 1*bmi5 + 1*bmi6
     
#傾き因子の設定
s1 =~ 0*bmi1 + 1*bmi2 + 2*bmi3 +
      3*bmi4 + 4*bmi5 + 5*bmi6

#切片と傾きの分散
i ~~ i ; s1 ~~ s1 ;
#因子間相関
i ~~ s1
#因子平均
i ~ 1 ; s1 ~ 1 
#誤差分散
bmi1 ~ 0; bmi2 ~ 0; bmi3 ~ 0
bmi4 ~ 0; bmi5 ~ 0; bmi6 ~ 0
'

LCMの推定結果

# 成長曲線モデルの推定
library(lavaan)
model0.fit<-growth(model0,data=data)
chisq df pvalue cfi srmr rmsea
fit0.m 69.25 16.00 0.00 0.99 0.02 0.08

パラメータの推定値

Piecewise Model

 コード全体

切片因子の設定

  • 因子負荷を1に固定
#lavaan code
i =~ 1*t1+1*t2+1*t3+1*t4+1*t5

前半の傾きの設定

前半の傾き(s1)の因子負荷を
区分時点以降同値に固定

#lavaan model code
i=~0*t1+1*t2+2*t3+1*t3+1*t3

後半の傾きの設定

後半の傾き(s1)の因子負荷を
区分時点まで0に固定

#lavaan model code
i=~0*t1+0*t2+0*t3+1*t4+2*t5

その他の設定

  • 切片と傾きの分散を自由推定
  • 因子間相関を自由推定
  • 因子平均を自由推定
  • 誤差分散を0に固定
#切片と傾きの分散
i ~~ i ; s1 ~~ s1 ; s2 ~~ s2
#因子間相関
i ~~ s1 + s2 ; s1 ~~ s2
#因子平均
i ~ 1 ; s1 ~ 1 ; s2 ~ 1
#誤差分散
bmi1 ~ 0; bmi2 ~ 0; bmi3 ~ 0
bmi4 ~ 0; bmi5 ~ 0; bmi6 ~ 0
'

推定の実行

  • モデル
library(lavaan)
model1.fit<-lavaan::growth(model1, data)
  • 適合度

    fit1.m<-round(fitMeasures(model1)[c("chisq","df","pvalue",
                                  "cfi","srmr","rmsea")],digits=2)
    fit1.m<-t(as.data.frame(fit1))
    print(xtable(fit1.m),comment=F,type="html")
    chisq df pvalue cfi srmr rmsea
    fit1.m 14.21 12.00 0.29 1.00 0.02 0.02

polynomial models

二次以上の曲線モデル

  • quadratic curveなど
  • 時間変数のコーディング要検討

こんなモデル

latent basis model

データドリブンに遷移パターンを推定

  • 傾きの因子負荷を自由推定する

こんなモデル